# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1069.1.236 -> 1.1069.1.237 # arch/ia64/kernel/salinfo.c 1.11 -> 1.12 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 04/01/08 kaos@sgi.com 1.1069.1.237 # [PATCH] ia64: Avoid double clear of CMC/CPE records # # Credit to Ben Woodard . # -------------------------------------------- # diff -Nru a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c --- a/arch/ia64/kernel/salinfo.c Thu Jan 8 16:34:20 2004 +++ b/arch/ia64/kernel/salinfo.c Thu Jan 8 16:34:20 2004 @@ -356,6 +356,8 @@ { struct salinfo_data *data = context; data->log_size = ia64_sal_get_state_info(data->type, (u64 *) data->log_buffer); + if (data->type == SAL_INFO_TYPE_CPE || data->type == SAL_INFO_TYPE_CMC) + ia64_sal_clear_state_info(data->type); } static void @@ -448,8 +450,11 @@ data->saved_num = 0; spin_unlock_irqrestore(&data_saved_lock, flags); } - call_on_cpu(cpu, salinfo_log_clear_cpu, data); - + /* ia64_mca_log_sal_error_record or salinfo_log_read_cpu already cleared + * CPE and CMC errors + */ + if (data->type != SAL_INFO_TYPE_CPE && data->type != SAL_INFO_TYPE_CMC) + call_on_cpu(cpu, salinfo_log_clear_cpu, data); /* clearing a record may make a new record visible */ salinfo_log_new_read(cpu, data); if (data->state == STATE_LOG_RECORD &&